package com.bruan.d2_collection;

import java.lang.reflect.Array;
import java.util.*;
import java.util.function.Consumer;

public class SetTest4 {
    public static void main(String[] args) {
        Set<Integer> set = new TreeSet<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(5);
        set.add(4);
        set.add(6);
        set.add(7);
        System.out.println(set);
        System.out.println("——————————————————————————————————————");
        ArrayList<String> list = new ArrayList<>();
        list.add("马牛比");
        list.add("马比");
        list.add("牛比");
        list.add("比");
        list.add("马");
        list.add("牛");
        list.add("很好");

//        删去马X
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).contains("马")){
                list.remove(i);
            }
        }
        System.out.println(list);

//        1. 加上i-- 修复删不干净的问题
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).contains("马")){
                list.remove(i);
                i--;
            }
        }
        System.out.println(list);

//        2. 倒着输出
        for (int i = list.size()-1; i >= 0; i--) {
            if (list.get(i).contains("马")){
                list.remove(i);
            }
        }
        System.out.println(list);

        //3. 迭代器
        Iterator<String> it = list.iterator();
        while (it.hasNext()){
            String name = it.next();
            if (name.contains("马")){
                it.remove();//自带i--
//                list.remove(); 调用list删除会出bug
            }
        }

        for(String s:list){
            System.out.println(s);
        }

        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });

        list.forEach(System.out::println);
    }
}
